#ifndef _XX_YY_BMOCK_CONTROL_TOOLS
#define _XX_YY_BMOCK_CONTROL_TOOLS
#include <string>
#include <boost/shared_ptr.hpp>
#include "bmock_location.hpp"

namespace bmock {
	struct control_tools {
		virtual void error(const std::string &,const location &,bool=true,bool=false) const {}
		virtual void abort(const location &) const{}
		virtual bool warn(const std::string &,const location &) const{return false;}
		virtual bool check_equal(const std::string &,const std::string &,const std::string &,const location &) const{return false;}
		virtual void require_equal(size_t ,size_t ,const std::string &,const location &) const{}
		virtual bool warn_not_equal(size_t ,size_t ,const std::string &,const location &) const{return false;}
		virtual bool check_less_or_equal(size_t ,size_t ,const std::string &,const location &) const{return false;}
		virtual bool check_ptr(bool ,bool ,const std::string &,const location &) const{return false;}
		
		virtual bool check_equal_no_msg(const std::string &,const std::string &,const location &) const{return false;}
		virtual bool check_ptr_no_msg(bool ,bool ,const location &) const{return false;}
	};
	
	typedef boost::shared_ptr<control_tools> control_tools_ptr;
};
#endif
